home *** CD-ROM | disk | FTP | other *** search
/ Resource for Source: C/C++ / Resource for Source - C-C++.iso / misc_src / cslib16b / include / cstools.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-01  |  5.7 KB  |  163 lines

  1. /***********************************************************************
  2.  
  3.                                        CSA Library, Version 1.6.b 
  4.                                          Released: March 2nd 1995 
  5.  
  6.        Collection of general purpose functions.
  7.        Mainly intended to support the other functions
  8.        and classes.
  9.  
  10.                                            Copyright(c) 1994,1995 
  11.                                                            Combis 
  12.                                                   The Netherlands 
  13. ***********************************************************************/
  14.  
  15. #ifndef __CSTOOLS_H
  16. #define __CSTOOLS_H
  17.  
  18. #ifndef __CSTYPES_H
  19. #include "cstypes.h"
  20. #endif
  21.  
  22. #ifndef __BIOS_H
  23. #include <bios.h>
  24. #endif
  25.  
  26. #ifndef __STRING_H
  27. #include <string.h>
  28. #endif
  29.  
  30. #ifndef __CONIO_H
  31. #include <conio.h>
  32. #endif
  33.  
  34. #ifndef __CSBORDER_H
  35. #include "csborder.h"
  36. #endif
  37.  
  38. #ifndef __CSMALLOC_H
  39. #include "csmalloc.h"
  40. #endif
  41.  
  42.  
  43. ///////////////// String functions /////////////////////////////////////
  44.  
  45. void  filter_string(CSCHAR *s,CSCHAR *p);
  46. void  lower_upper(CSCHAR *ptr);
  47. char *notabs(CSCHAR *s);
  48. char *remove_space(CSCHAR *s);
  49. void  trim_string(CSCHAR *s);
  50. void  str_left(CSCHAR *s,CSCHAR *d,int len);
  51. void  str_split(CSCHAR *src,CSCHAR ch,CSCHAR *frst,CSCHAR *last);
  52. void  str_strip(CSCHAR *s,CSCHAR *f);
  53. inline int str_equal(CSCHAR *s,CSCHAR *s2) { return !strcmp(s,s2); }
  54. char *string_replace_ones(CSCHAR *s,CSCHAR *d,CSCHAR *r);
  55. int   string_replace(CSCHAR *s,CSCHAR *d,CSCHAR *r);
  56.  
  57. ///////////////// Screen functions /////////////////////////////////////
  58.  
  59. void  box(int row,int col,int h,int w,int border,int color);
  60. void  desktop(void);
  61. void  disp_r_xy(int x,int y,CSCHAR c, CSCHAR color);
  62. void  disp_xy(int x,int y,CSCHAR c, CSCHAR color);
  63. void  disp_r_xy(int x,int y,CSCHAR c);
  64. void  disp_xy(int x,int y,CSCHAR c);
  65. int   is_color(void);
  66. inline void gotoyx(int y,int x) { gotoxy(x,y); }
  67. inline int  make_color(int txt,int backg) {return txt|((backg&7)<<4); }
  68.  
  69. ///////////////// User interface ////////////////////////////////////////
  70. void  empty_kb(void);
  71. void  wait(long msec);
  72. void  waitkb(long msec);
  73.  
  74. ///////////////// Numerical functions ///////////////////////////////////
  75. long  csrand(long);
  76. int   csrand(int);
  77. unsigned long sqrtl(unsigned long l);
  78. unsigned int  sqrti(unsigned int i);
  79. size_t next_prime(size_t n);
  80. long  lrandom(long amount);
  81.  
  82.  
  83. ///////////////// File related //////////////////////////////////////////
  84. long  filesize(CSCHAR *name);
  85. int   disk(CSCHAR *s);
  86. char *file_ext(CSCHAR *naam,CSCHAR *ext);
  87. int   file_exist(CSCHAR *fnaam);
  88. int   add_path(CSCHAR *filen,CSCHAR *path);
  89. int   cstmpname(CSCHAR *name);
  90.  
  91.  
  92. ///////////////// Miscellaneous /////////////////////////////////////////
  93. char *add2point(void *p,long l);
  94. long  time_stamp(void);
  95. int   bit_masks(U32 l,U32 &off,U16 &shift);
  96.  
  97.  
  98. #ifndef TRUE
  99. #define TRUE      1
  100. #endif
  101.  
  102. #ifndef FALSE
  103. #define FALSE      0
  104. #endif
  105.  
  106.  
  107. #define ABS(x)       MAX(x,-(x))
  108. #define MAX(x,y)   (( ((x)>(y)) ? (x):(y)))
  109. #define MIN(x,y)   (( ((x)<(y)) ? (x):(y)))
  110.  
  111.  
  112. #pragma warn -sig
  113.  
  114. ////////////////////////////////////////////////////////////////////////////
  115. ////////////////////////////////////////////////////////////////////////////
  116. ////////////////////////////////////////////////////////////////////////////
  117. //  Inline versions of 'max' and 'min' which return an
  118. //  appropriate variable type.
  119. //  Useful for calling polymorphic functions.
  120. //
  121. ////////////////////////////////////////////////////////////////////////////
  122.  
  123. inline size_t min(size_t x,size_t y)          { return (x<y) ? x: y; }
  124. inline int    min(int     x,size_t y)          { return (x<y) ? x: y; }
  125. inline long   min(long     x,size_t y)          { return (x<y) ? x: y; }
  126. inline size_t min(ulong  x,size_t y)          { return (x<y) ? x: y; }
  127. inline int    min(size_t x,int      y)          { return (x<y) ? x: y; }
  128. inline int    min(int     x,int      y)          { return (x<y) ? x: y; }
  129. inline long   min(long     x,int      y)          { return (x<y) ? x: y; }
  130. inline int    min(ulong  x,int      y)          { return (x<y) ? x: y; }
  131. inline long   min(size_t x,long   y)          { return (x<y) ? x: y; }
  132. inline long   min(int     x,long   y)          { return (x<y) ? x: y; }
  133. inline long   min(long     x,long   y)          { return (x<y) ? x: y; }
  134. inline long   min(ulong  x,long   y)          { return (x<y) ? x: y; }
  135. inline size_t min(size_t x,ulong  y)          { return (x<y) ? x: y; }
  136. inline int    min(int     x,ulong  y)          { return (x<y) ? x: y; }
  137. inline long   min(long     x,ulong  y)          { return (x<y) ? x: y; }
  138. inline ulong  min(ulong  x,ulong  y)          { return (x<y) ? x: y; }
  139.  
  140.  
  141. inline size_t max(size_t x,size_t y)          { return (x>y) ? x: y; }
  142. inline size_t max(int     x,size_t y)          { return (x>y) ? x: y; }
  143. inline long   max(long     x,size_t y)          { return (x>y) ? x: y; }
  144. inline ulong  max(ulong  x,size_t y)          { return (x>y) ? x: y; }
  145. inline size_t max(size_t x,int      y)          { return (x>y) ? x: y; }
  146. inline int    max(int     x,int      y)          { return (x>y) ? x: y; }
  147. inline long   max(long     x,int      y)          { return (x>y) ? x: y; }
  148. inline ulong  max(ulong  x,int      y)          { return (x>y) ? x: y; }
  149. inline long   max(size_t x,long   y)          { return (x>y) ? x: y; }
  150. inline long   max(int     x,long   y)          { return (x>y) ? x: y; }
  151. inline long   max(long     x,long   y)          { return (x>y) ? x: y; }
  152. inline ulong  max(ulong  x,long   y)          { return (x>y) ? x: y; }
  153. inline ulong  max(size_t x,ulong  y)          { return (x>y) ? x: y; }
  154. inline ulong  max(int     x,ulong  y)          { return (x>y) ? x: y; }
  155. inline ulong  max(long     x,ulong  y)          { return (x>y) ? x: y; }
  156. inline ulong  max(ulong  x,ulong  y)          { return (x>y) ? x: y; }
  157.  
  158.  
  159. #pragma warn .sig
  160.  
  161.  
  162. #endif
  163.